<template>
  <q-page padding>
    <a :href="'/tags/' + tag.url" v-for="tag in tags">{{ tag.name }}</a>
    <q-breadcrumbs
      separator="/"
      active-color="secondary"
      color="light"
    >
      <q-breadcrumbs-el label="首页" to="/" />
      <q-breadcrumbs-el label="头像" to="/category/touxiang" />
      <q-breadcrumbs-el label="标签" to="/components/breadcrums/bogus" />
    </q-breadcrumbs>
      <q-infinite-scroll :handler="loadPictuers" id="pictuers">
        <q-card class="q-ma-sm item" :key="'pictuer-' + index" v-for="(item, index) in imgList">
          <q-card-media class="item-media">
            <img :src="item.url + '/h200'">
          </q-card-media>
          <q-card-actions align="around">
            <q-btn flat round color="red" icon="favorite" @click="switchPictuer(index)"/>
            <q-btn flat round color="faded" icon="bookmark" />
            <q-btn flat round color="primary" icon="share" />
          </q-card-actions>
        </q-card>
        <q-spinner-dots slot="message" :size="40"></q-spinner-dots>
      </q-infinite-scroll>
      <!--pictuer-view :imgs="imgList" v-show="showBigImg" v-on:close="showBigImg = false" ref="views"></pictuer-view-->
      <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

    <!-- Background of PhotoSwipe.
         It's a separate element as animating opacity is faster than rgba(). -->
    <div class="pswp__bg"></div>

    <!-- Slides wrapper with overflow:hidden. -->
    <div class="pswp__scroll-wrap">

        <!-- Container that holds slides.
            PhotoSwipe keeps only 3 of them in the DOM to save memory.
            Don't modify these 3 pswp__item elements, data is added later on. -->
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>

        <!-- Default (PhotoSwipeUI_Default) interface on top of sliding area. Can be changed. -->
        <div class="pswp__ui pswp__ui--hidden">

            <div class="pswp__top-bar">

                <!--  Controls are self-explanatory. Order can be changed. -->

                <div class="pswp__counter"></div>

                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>

                <button class="pswp__button pswp__button--share" title="Share"></button>

                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>

                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>

                <!-- Preloader demo https://codepen.io/dimsemenov/pen/yyBWoR -->
                <!-- element will get class pswp__preloader--active when preloader is running -->
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                      <div class="pswp__preloader__cut">
                        <div class="pswp__preloader__donut"></div>
                      </div>
                    </div>
                </div>
            </div>

            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div>
            </div>

            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>

            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>

            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>

        </div>

    </div>

</div>
  </q-page>
</template>

<script>
import PictuerView from '../components/PictuerView'
import PhotoSwipe from 'photoswipe'
import PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default'
export default {
  name: 'List',
  components: {
    PictuerView
  },
  data() {
    return {
      imgList: [],
      page: 1,
      showBigImg: false,
      currentImg: 0,
      isInit: false,
      tags: []
    }
  },
  created() {

  },
  mounted(){

  },
  methods: {
    loadPictuers(index, done) {

        this.$axios.get('https://txcj.touxiangge.com/api/pictuers' + '?page=' + index).then( ({data}) => {
          this.imgList = this.imgList.concat(data.data)
          done()
        })
    },
    switchPictuer(index) {
      this.showBigImg = true
      this.currentImg = index
      this.initGallery(index)
    },
    initGallery(index) {
      this.$nextTick(() => {
        let pswpElement = document.querySelectorAll('.pswp')[0]
        let options = {
          showHideOpacity: true,
          bgOpacity: .7,
          closeOnScroll: false,
          history: false,
          loop: false
        }
        const gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, this.imgList, options)
        gallery.init()
        console.log(gallery.currItem)
        if (index > 0) {
          gallery.goTo(index)
        }
        gallery.listen('close', () => {
          //this.showBigImg = false
        })

      })
    }
  }
}
</script>

<style lang="stylus">

  .q-infinite-scroll-content
    display flex
    flex-wrap wrap
  .q-infinite-scroll-content:after
    display block
    content ''
    flex-grow 9999

  .item
    display: flex;
    flex-grow: 1;
    position: relative;
    overflow: hidden;
    flex-direction: column
    .item-media
      height 200px
      width 100%
      img
        flex-grow 1
        height 200px
        object-fit cover
        transition .3s
</style>
